<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>手工安装步骤</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="install.windows.installer.msi.html">Windows 安装程序（PHP 5.2 及更新版本）</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="install.windows.iis.html">Microsoft IIS</a></div>
 <div class="up"><a href="install.windows.html">Windows 系统下的安装</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="install.windows.manual" class="sect1">
 <h2 class="title">手工安装步骤</h2>
 <p class="para">
  本章包含有在 Microsoft Windows 中手工安装和配置 PHP
  的指示。有关如何使用 PHP 安装程序在 Windows 下安装和配置
  PHP 以及 web 服务器，请参阅
  <a href="install.windows.installer.msi.html" class="link">Windows 安装程序（PHP 5.2 及更新版本）</a>一章。
 </p>
 <div class="sect2" id="install.windows.manual.download">
  <h3 class="title">选择和下载 PHP 发行包</h3>
  <p class="para">
   从 <a href="http://windows.php.net/download/" class="link external">&raquo;&nbsp;PHP for Windows: Binaries and Sources</a>
   页面下载 PHP 的 zip 二进制发行包。有几个不同版本，根据所用 web 服务器选择合适的版本：
   <ul class="itemizedlist">
    <li class="listitem">
     <p class="para">
      如果是用于 IIS 则选择 PHP 5.3 <em class="emphasis">VC9 Non Thread Safe</em>
      或者 <em class="emphasis">VC6 Non Thread Safe</em>；
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      如果是用 IIS7 或更高版本以及 PHP 5.3+，则应选择 VC9 的包；
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      如果是用于 Apache 1 或 Apache 2 则选择 PHP 5.3 <em class="emphasis">VC6</em>
      或者 PHP 5.2 <em class="emphasis">VC6</em>。
     </p>
    </li>
   </ul>
   <blockquote class="note"><p><strong class="note">Note</strong>: 
    <p class="para">
     VC9 版本是用 Visual Studio 2008 编译的并且在性能和稳定性上都有所提高。VC9
     版本需要用户系统中安装有
     <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF" class="link external">&raquo;&nbsp;Microsoft 2008 C++ Runtime (x86)</a> 或者
     <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=BD2A6171-E2D6-4230-B809-9A8D7548C1B6" class="link external">&raquo;&nbsp;Microsoft 2008 C++ Runtime (x64)</a>。
    </p>
   </p></blockquote>
  </p>
 </div>
 <div class="sect2" id="install.windows.manual.package">
  <h3 class="title">PHP 压缩包的结构和内容</h3>
  <p class="para">
   将 zip 包解压缩到自己选择的目录，例如 C:\PHP\。此目录和文件结构类似于：
   <div class="example" id="example-35">
    <p><strong>Example #1 PHP 5 压缩包的结构</strong></p>
    <div class="example-contents">
<div class="cdata"><pre>

c:\php
   |
   +--dev
   |  |
   |  |-php5ts.lib                 -- php5.lib 的非线程安全版本
   |
   +--ext                          -- PHP 扩展库的 DLL 文件目录
   |  |
   |  |-php_bz2.dll
   |  |
   |  |-php_cpdf.dll
   |  |
   |  |-...
   |
   +--extras                       -- 空 
   |
   +--pear                         -- PEAR 的初始版本
   |
   |
   |-go-pear.bat                   -- PEAR 安装脚本
   |
   |-...
   |
   |-php-cgi.exe                   -- CGI 可执行文件
   |
   |-php-win.exe                   -- 无窗口执行脚本的可执行文件
   |
   |-php.exe                       -- PHP 命令行可执行文件（CLI）
   |
   |-...
   |
   |-php.ini-development           -- 默认的 php.ini 设置
   |
   |-php.ini-production            -- 推荐的 php.ini 设置
   |
   |-php5apache2_2.dll             -- 非线程安全版本中无此文件
   |
   |-php5apache2_2_filter.dll      -- 非线程安全版本中无此文件
   |
   |-...
   |
   |-php5ts.dll                    -- PHP 核心 DLL（php5.dll 的非线程安全版本）
   | 
   |-...

</pre></div>
    </div>

   </div>
  </p>
  <p class="para">
   以下是 PHP zip 包中包含的模块和可执行文件列表：
   <ul class="itemizedlist">
    <li class="listitem">
     <p class="para">
      <var class="filename">go-pear.bat</var> - PEAR
      安装脚本。更多内容参见<a href="http://pear.php.net/manual/en/installation.php" class="link external">&raquo;&nbsp;安装 PEAR</a>。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="filename">php-cgi.exe</var> - CGI 可执行文件，可用于 IIS 上以 CGI 或者 FastCGI 方式运行 PHP。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="filename">php-win.exe</var> - PHP 可执行文件，可运行 PHP 脚本而不打开命令行窗口（例如使用
      Windows 图形界面的 PHP 程序）。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="filename">php.exe</var> - PHP 可执行文件，用于命令行界面运行 PHP 脚本（CLI）。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="filename">php5apache2_2.dll</var> - Apache 2.2.X 模块。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="filename">php5apache2_2_filter.dll</var> - Apache 2.2.X 过滤器。
     </p>
    </li>
   </ul>
  </p>
 </div>
 <div class="sect2" id="install.windows.manual.phpini">
  <h3 class="title">修改 <var class="filename">php.ini</var> 文件</h3>
  <p class="para">
   解压缩 PHP 的包之后，将 <var class="filename">php.ini-production</var> 拷贝为
   同一目录下的 <var class="filename">php.ini</var>。如有必要，也可以将
   <var class="filename">php.ini</var> 放到其它地方，但是需要更多配置步骤，具体见<a href="configuration.file.html" class="link">配置文件</a>。
  </p>
  <p class="para">
   <var class="filename">php.ini</var> 文件决定 PHP 如何配置自身以及如何在其工作环境下运行。以下
   <var class="filename">php.ini</var> 文件中的配置指令有助于使 PHP 更好地运行于 Windows
   之中。有一些是可选项。还有很多其它指令也可能与用户环境有关，更多信息见
   <a href="ini.list.html" class="link">php.ini 配置选项列表</a>。
  </p>
  <p class="para">
   必须的指令：
   <ul class="itemizedlist">
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">extension_dir</var></var> = <em>&lt;指向扩展库目录的路径&gt;</em> -
      <var class="varname"><var class="varname">extension_dir</var></var> 需要指向存放 PHP
      扩展库文件的目录。可以是绝对路径（如 &quot;C:\PHP\ext&quot;）或相对路径（如
      &quot;.\ext&quot;）。在 <var class="filename">php.ini</var> 文件中要加载的扩展库都必须在
      <var class="varname"><var class="varname">extension_dir</var></var> 所指定的目录之中。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">extension</var></var> = <em>xxxxx.dll</em> -
      对每个需要激活的扩展，都需要一行相应的 &quot;extension=&quot; 语句来说明
      PHP 启动时加载 <var class="varname"><var class="varname">extension_dir</var></var> 目录下的哪些扩展。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">log_errors</var></var> = <em>On</em> - 
      PHP 有错误日志的功能可以将错误报告发送到一个文件中，或者系统服务中（例如系统日志），与下面的
      <var class="varname"><var class="varname">error_log</var></var> 指令配合工作。在 IIS 下运行时，<var class="varname"><var class="varname">log_errors</var></var>
      应被激活，并且配合有效的 <var class="varname"><var class="varname">error_log</var></var>。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">error_log</var></var> = <em>&lt;指向错误日志文件的路径&gt;</em> - 
      error_log 需要指向一个具有绝对或相对路径的文件名用于记录 PHP
      的错误日志。Web 服务器需要对此文件有可写权限。最常用的位置是各种临时目录，例如
      &quot;C:\inetpub\temp\php-errors.log&quot;。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">cgi.force_redirect</var></var> = <em>0</em> - 
      在 IIS 下运行时需要关闭此项指令。这是个在许多其它 web 服务器中都需要激活的目录安全功能，但是在
      IIS 下如果激活则会导致 PHP 引擎在 Windows 中出错。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">cgi.fix_pathinfo</var></var> = <em>1</em> - 
      此指令可以允许 PHP 遵从 CGI 规则访问真实路径信息。IIS 的 FastCGI 实现需要激活此指令。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">fastcgi.impersonate</var></var> = <em>1</em> - 
      IIS 下的 FastCGI 支持模拟呼叫用户方安全令牌的能力。这使得 IIS 可以定义请求方的安全上下文。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">fastcgi.logging</var></var> = <em>0</em> - 
      FastCGI 日志在 IIS 下应被关闭。如果激活，则任何类的任何消息都被 FastCGI
      视为错误条件从而导致 IIS 产生 HTTP 500 错误。
     </p>
    </li>
   </ul>
  </p>
  <p class="para">
   可选指令：
   <ul class="itemizedlist">
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">max_execution_time</var></var> = <em>##</em> - 
      此指令设定任何脚本所能够运行的最长时间。默认值是 30 秒。如果
      PHP 程序需要更多时间运行则增大此值。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">memory_limit</var></var> = <em>###M</em> - 
      PHP 进程能够占用的内存，单位为兆字节。默认值是 128M，对大多数程序都够用了。某些复杂程序可能需要更多。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">display_errors</var></var> = <em>Off</em> - 
      此指令设定 PHP 是否将任何错误信息包含在返回给 web
      服务器的数据流中。如果设定为 &quot;On&quot;，则 PHP
      将任何由 <var class="varname"><var class="varname">error_reporting</var></var> 指令所定义的错误信息作为错误数据流发给
      web 服务器。为安全起见，建议对在线服务器设为 &quot;Off&quot;
      以避免泄露任何可能包含在错误消息中的安全敏感信息。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">open_basedir</var></var> = <em>&lt;指向目录的路径，由分号分隔&gt;</em> -
      例如
      openbasedir=&quot;C:\inetpub\wwwroot;C:\inetpub\temp&quot;。此指令指定了允许
      PHP 进行文件系统操作的目录。任何对这些目录之外的文件操作都会导致错误。此指令在共享主机环境中特别有用，可以阻止
      PHP 脚本访问任何其网站根目录之外的文件。
     </p>
    </li>
    <li class="listitem">
     <p class="para">
      <var class="varname"><var class="varname">upload_max_filesize</var></var> = <em>###M</em> 和
      <var class="varname"><var class="varname">post_max_size</var></var> = <em>###M</em> -
      分别是上传文件的最大大小和 POST 方法提交数据的最大大小。如果 PHP
      程序需要上传大型数据例如照片和视频文件，则应提高这两项的值。
     </p>
    </li>
   </ul>
  </p>
  <p class="para">
   至此已在系统中安装了 PHP。下一步是选择一种 web 服务器并且使其能够运行
   PHP。在目录中选择 web 服务器。
  </p>
  <p class="para">
   除了可在 web 服务器中运行 PHP 之外，PHP 还可以在命令行运行，如同
   <em>.BAT</em> 批处理脚本一样。详见
   <a href="install.windows.commandline.html" class="link">Windows
    下的 PHP 命令行方式</a>。
  </p>
 </div>
</div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="install.windows.installer.msi.html">Windows 安装程序（PHP 5.2 及更新版本）</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="install.windows.iis.html">Microsoft IIS</a></div>
 <div class="up"><a href="install.windows.html">Windows 系统下的安装</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>
